package com.googlecode.archimedes.filegen.model;

import java.util.Collection;
import java.util.Set;
import java.util.TreeSet;

/**
 * <p>
 * Represents a Java 1.5 Enumeration
 * </p>
 * <p>
 * Created: Feb 17, 2006
 * </p>
 * 
 * @author Erik Gustavson
 * @version $Id: Enumeration.java 2023 2006-02-18 01:16:42 +0000 (Sat, 18 Feb 2006) erik $
 */
public class Enumeration extends AbstractAsset {

	private String					name;
	private Set<EnumeratedValue>	values		= new TreeSet<EnumeratedValue>();
	private String					description	= "No Description";
	private String					_package	= null;

	/**
	 * Returns the description.
	 * 
	 * @return String value of description
	 */
	public String getDescription() {
		return description;
	}

	/**
	 * Sets the description
	 * 
	 * @param description
	 *            The description to set.
	 */
	public void setDescription(String description) {
		this.description = description;
	}

	/**
	 * Returns the name.
	 * 
	 * @return String value of name
	 */
	public String getName() {
		return name;
	}

	/**
	 * Sets the name
	 * 
	 * @param name
	 *            The name to set.
	 */
	public void setName(String name) {
		this.name = name;
	}

	/**
	 * Returns the values.
	 * 
	 * @return Set<EnumeratedValue> value of values
	 */
	public Set<EnumeratedValue> getValues() {
		return values;
	}

	/**
	 * Sets the values
	 * 
	 * @param values
	 *            The values to set.
	 */
	public void setValues(Set<EnumeratedValue> values) {
		this.values = values;
	}

	/**
	 * Adds a single value to the list
	 * 
	 * @param value
	 */
	public void addValue(EnumeratedValue value) {
		this.getValues().add(value);
	}

	/**
	 * @see com.tps.filegen.model.Asset#getSubordinateAssets()
	 */
	public Collection<? extends Asset> getSubordinateAssets() {
		return null;
	}

	/**
	 * @param _package
	 *            the _package to set
	 */
	public void setPackage(String _package) {
		this._package = _package;
	}

	/**
	 * @return the _package
	 */
	public String getPackage() {
		return _package;
	}

}
